package com.bys.admin.system.controller;


import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bys.admin.system.controller.vo.SysDictDataPageVo;
import com.bys.admin.system.entity.SysDictData;
import com.bys.response.R;
import com.bys.admin.system.controller.vo.SimpleDictDataVo;
import com.bys.admin.system.convert.dept.SysDictDataConvert;
import com.bys.admin.system.service.ISysDictDataService;

import org.springframework.web.bind.annotation.*;

import jakarta.annotation.Resource;
import java.util.List;

/**
 * <p>
 * 系统字段数据 前端控制器
 * </p>
 *
 * @author bys
 * @since 2024-04-25
 */
@RestController
@RequestMapping("/system/sys-dict-data")
public class SysDictDataController {
    @Resource
    private ISysDictDataService sysDictDataService;
    @Operation(summary="查询全部的字典")
    @GetMapping("/simple-list")
    public R<List<SimpleDictDataVo>> simpleList(){
        List<SimpleDictDataVo> simpleDictDataVos = SysDictDataConvert.INSTANCE.convertSimpleVo(sysDictDataService.list());
        return R.success(simpleDictDataVos);
    }
    @Operation(summary="分页查询")
    @GetMapping("/page")
    public R<Page<SysDictData>> page(SysDictDataPageVo pageVo){
        Page<SysDictData> pageParams = new Page<>(pageVo.getPageNo(), pageVo.getPageSize());
        LambdaQueryWrapper<SysDictData> wrapper = new LambdaQueryWrapper<SysDictData>().eq(SysDictData::getDictType, pageVo.getDictType());
        Page<SysDictData> page = sysDictDataService.page(pageParams,wrapper);
        return R.success(page);
    }

    @Operation(summary="保存字典数值")
    @PostMapping("/save")
    public R<Boolean> save(@RequestBody  SysDictData sysDictData){
        sysDictDataService.save(sysDictData);
        return R.success();
    }
    @Operation(summary="修改字典数值")
    @PutMapping("/update")
    public R<Boolean> update(@RequestBody SysDictData sysDictData){
        sysDictDataService.updateById(sysDictData);
        return R.success();
    }

}
